3. Objetos, operadores y funciones

Lo básico de R, tipos de objetos, operadores y funciones
Author

Gabriel Andrade Ponce/Karen Lorena Velásquez-C

Published

May 6, 2024

Manos a la obra

Lo primero es abrir RStudio y crear un nuevo R script.

Ejecutar comandos

R básicamente funciona dándole ordenes escritas por medio de comandaos o expresiones. Un comando de R puede ser la suma de 2 +2, pero si lo tecleamos en nuestro script probablemente no suceda mucho. Para decirle a R que evalué el comando es necesario “ejecutarlo”. Para ejecutar una linea basta con poner el cursor sobre la misma y clickear el botón “run” o usar las teclas Ctrl + Enter. Si queremos ejecutar una linea específica, tenemos que seleccionar la operación que queremos ejecutar.

Vamos a comenzar con algo sencillo:

2+2
[1] 4

Cuando ejecutan esta linea verán que en la consola aparecerá el resultado. En este caso R nos dice que la evaluación del comando es un objeto que contiene el número 4. Recuerden que R funciona con objetos.

También podemos usar paréntesis para agrupar operaciones

(50+9)/(2*3)
[1] 9.833333

En R a veces queremos escribir notas o “comentar” nuestro código para recordar que hace. Si escribimos normalmente en un script o en la consola, probablemente tendrémos un error, porque R no entenderá todo la palabrería.

En esos casos usamos el numeral o gato (para los mexicanos) #

# Esto no lo ejecuta R porque tiene un # al inicio
# objeto <- 23, esto tampoco funcionará
2 # este es un número y su se ejecuta porque el númeral esta despues del objeto, o función
[1] 2

Crear objetos

Como verán estos objetos se reflejan en la consola, pero a medida que corremos más lineas se van perdiendo. La mayoría del tiempo vamos a asignar nuestras operaciones a un objeto que queremos conservar. En R definimos un objeto mediante <- (Alt + “-”), por ejemplo:

numero <- 2
numerote <- 56

Creé dos objetos que contienen cada uno un número. Estos números quedaron almacenados en los objetos, pero para verlos necesitaremos llamar a dichos objetos. Entonces si yo ejecuto la linea de numerote, que número saldrá?

numerote
[1] 56

Tu puedes poner el nombre del objeto que quieras, pero hay que tener cuidado. R tiene su propia ortografía y es sensible a las mayúsculas. Por ejemplo, si escribes Numerote y lo ejecutas, tendrás un error. Otra cosa que jamás se recomienda en R es el uso de acentos para crear objetos (ni para carpetas o columnas dentro de databases), ya que dependiendo de la codificación podrás tener errores. Además, los nombres no deben iniciar con un número o contener operadores cómo: espacio , + - * / # % [ ] { } ( ) ~. Por último, debes evitar nombrar tus objetos como otras funciones comunes de R como mean .

Se recomienda que los nombres de los objetos sean informativos de lo que contienen y en algunos casos objetos con nombres granes, se pueden usar algunos caracteres o gramática

Finalmente, hay que tener cuidado cuando se repiten los nombres de los objetos ya que se re-escribirán. Por ejemplo:

numerote
[1] 56
numerote <- "ciencuentayseis"
numerote # Ya no es un número
[1] "ciencuentayseis"

Tipos de objetos

En R hay distintos tipos de objetos

Numericos

#Numericos (pueden se enteros o continuos)
numero_1 <- 25
numero_2 <- 27.5

# Los objetos numericos permiten hacer operaciones
(suma <- numero_1+numero_2)
[1] 52.5
(resta <- suma - numero_2)
[1] 25
(producto <- suma*resta)
[1] 1312.5
(etc <- ((producto/suma)+ resta)^2)
[1] 2500
Operadores aritméticos
Operador Operación
+ Suma
- Resta
* Multiplicación
/ División
^ Potencia

Pero también se pueden usar operadores relacionales, en este caso tendremos como resultado un objeto lógico

7<3
[1] FALSE
30>=50
[1] FALSE
50==50
[1] TRUE
Operadores relacionales
Operador Operación
< Menor que
<= Menor o igual que
> Mayor que
>= Mayor o igual que
== Igual que
!= Diferente de

Caracteres

Como su nombre lo indica son nombres o palabras . Los caracteres siempre estarán delimitados por comillas "xx"

(carac_1 <- "a")
[1] "a"
(carac_2 <- "me gusta la estadística.com")
[1] "me gusta la estadística.com"

¿Que pasa cuando hacemos esto?

numero_ment <- "69"

Está de más decir que con los caracteres no se pueden hacer operaciones aritméticas. Aun así se pueden usar operadores relacionales con los caracteres.

"a"< "b" # En este caso R usa el orden alfabético para decidir.
[1] TRUE
 "hola"== "Que onda"
[1] FALSE
"23"!= "veintitres"
[1] TRUE

Lógicos

Los objetos de tipo lógico pueden ser o de verdadero (TRUE) o falso (FALSE). Básicamente representan cuando una condición se cumple o no

# Podemos crear un objeto que dentro tenga un valor lógico
(logic <- TRUE)
[1] TRUE
# Son más útiles para operadores relacionale so booleanos

numero_1< numero_2
[1] TRUE
# Por ejemplo el operador condicional, donde si una condición es verdadera, entonces es igual a verdadero

TRUE|FALSE
[1] TRUE

Valores faltantes

Hay un tipo de valor en R que especifica que dicha observación o valor no existe o es perdido. Cabe aclarar que NA es diferente de 0: un 0 indica por ejemplo que si fuimos a contar ranas en cierto estanque no había ninguna, pero un NA quiere decir que nunca se fue a contar ranas a ese estanque. En R, un NA se reconoce como un objeto tipo lógico.

(no_hay <- NA)
[1] NA

Funciones

Las funciones son operaciones prediseñadas para cumplir cierto objetivo. Todas las funciones en R tienen esta estructura nombrefuncion(objeto).

Por ejemplo, esta función nos dejará saber de que tipo es un objeto. Esto es muy importante porque muchos errores suceden en R porque se ingresa un tipo de objeto no aceptado por la función u operador.

class(23)
[1] "numeric"
class(numero_ment)
[1] "character"
class(TRUE)
[1] "logical"
class(no_hay)
[1] "logical"

Cada función recibirá un tipo especial de objeto o argumento. Una función que nos ayudará a tener más información sobre esto es help. Esta función nos mostrará la ayuda de R para.

help(class)

Funciones de externas a base R

Hay muchas funciones que vienen por defecto en R. Sin embargo, gran parte de las funciones son creadas por la comunidad y vienen en paquetes. Para usar este tipo de funciones debemos primero instalar un paquete, luego llamarlo y ahí si ejecutar su función. Si no llamamos el paquete R nos dirá que hay un error porque no encuentra dicha función.

Primero instalemos un paquete mediante la función install.packages, adentro de la función le diremos el nombre del paquete entre comillas. Recuerden que para instalar un paquete necesitamos conexión a Internet.

install.packages("beepr")

Ahora vamos a llamar al paquete con la función library. Note que en este caso ya no necesitamos poner el paquete entre comillas

library(beepr)

Finalmente, usaremos una función que viene con el paquete beepr

beep(sound = 8)

Existen una cantidad inmensa de paquetes en R, la mayoría se encuentran en un repositorio llamado CRAN. Creo que la mejor manera de encontrar el paquete que buscas es por medio de san google. Supongamos que queremos buscar algún paquete que calcule índices de diversidad : package for shannon index in R. Probablemente aparezca vegan, entonces es solo cuestión de instalarlo y claro aprender a usarlo.